package com.byt.common.view.colorcardview;

import android.content.Context;
import android.content.res.ColorStateList;

import androidx.annotation.Nullable;

/**
 * Interface for platform specific CardView implementations.
 */
interface ShadowViewImpl {
    void initialize(ShadowViewDelegate cardView, Context context, ColorStateList backgroundColor,
                    float radius, float elevation, float maxElevation, ColorStateList shadowColorStart, ColorStateList shadowColorEnd);

    void setRadius(ShadowViewDelegate cardView, float radius);

    float getRadius(ShadowViewDelegate cardView);

    void setElevation(ShadowViewDelegate cardView, float elevation);

    float getElevation(ShadowViewDelegate cardView);

    void initStatic();

    void setMaxElevation(ShadowViewDelegate cardView, float maxElevation);

    float getMaxElevation(ShadowViewDelegate cardView);

    float getMinWidth(ShadowViewDelegate cardView);

    float getMinHeight(ShadowViewDelegate cardView);

    void updatePadding(ShadowViewDelegate cardView);

    void onCompatPaddingChanged(ShadowViewDelegate cardView);

    void onPreventCornerOverlapChanged(ShadowViewDelegate cardView);

    void setBackgroundColor(ShadowViewDelegate cardView, @Nullable ColorStateList color);

    ColorStateList getBackgroundColor(ShadowViewDelegate cardView);
}
